(function(){
openerp.nmbw800 = function(instance, local) {//名字一定要与模块名字意义，local就是instance.nmwlw
    var _t = instance.web._t,
        _lt = instance.web._lt;
    var QWeb = instance.web.qweb;

    //对应的后台模型
    var TodosModel = new instance.web.Model('nmbw800.mymodel');

    //主显示控件
    local.AppView=instance.Widget.extend({
        template:"nmbw800_appview",
        start:function(){
            var self=this;
            // this.$(".main-show-layout").tabs();//主要显示区域用用了jquery的tabs
            //渲染路径导航器
            this.loadnav=new local.LoadNav(self,'全国','');
            this.loadnav.on('showAllTheFarm',this,this.showAllTheFarm)
            //bw800的示例list
            this.leftnavBw800List=new local.ListBW800(self);
            this.leftnavBw800List.on('chose_list',this,this.RenderMain);//如果左侧list改变，重新渲染右边的主界面。
            //bw800的tab们显示
            this.mybw800tabs=new local.Bw800Tabs(self);
            //this.initRender();
            this.showAllTheFarm();
        },
        // //初始化的渲染
        // initRender:function(){
        //     var self=this;
        //     //渲染路径导航器
        //     this.loadnav.appendTo(self.$(".left-nav-load"));
        //     this.leftnavBw800List.appendTo(self.$(".left-nav-Alllist"));
        //     this.mybw800tabs.appendTo(self.$(".main-show-layout"));
        // },
        //左侧导航条的事件响应
        RenderMain:function(addr){
            //addr左侧导航控件事件存入的参数
            this.mybw800tabs.RenderMain(addr);

        },
        //路径导航选择器，显示全国养殖场的事件,初始化渲染
        showAllTheFarm:function(){
            var self=this;
            //渲染路径导航器
            this.loadnav.farm="全国";
            this.loadnav.coop="";
            this.loadnav.appendTo(self.$(".left-nav-load"));
            //清空下面的list，改为全国的场list
            this.$('.left-nav-Alllist').empty();
            //清空右边的tab们，显示全国地图
            this.$('.main-show-layout').empty();
            //显示一个地图控件,用数据库中的数据
            new instance.web.Model('nmbw800.farmmodel').query(['id','farmname','detailaddr','latitude','longitude'])
                .all()
                .then(function(results){
                    //以返回的数据库数据渲染地图
                    self.chinamap=new local.ChinaMap(self,results);
                    self.chinamap.appendTo(self.$('.main-show-layout'));
                    //以返回的数据渲染全国猪场的list
                    self.farmlist=new local.FarmList(self,results);
                    self.farmlist.appendTo(self.$('.left-nav-Alllist'));
                    //如果猪场单击list，事件由地图控件响应
                    self.farmlist.on('chose_list',self.chinamap,self.chinamap.handleChoseList);
                    //如果单击进入猪场
                    self.farmlist.on('enter_farm',self,self.handleEnterFarm);
                    //如果在地图控件单击某个猪场
                    self.chinamap.on('enter_farm',self,self.handleEnterFarm);
                });
        },
        //响应子控件产生的进入猪场的事件,dbid代表哪个猪场，将罗列属于这个id的所有猪场
        handleEnterFarm:function(dbid,farmname){
            this.$(".left-nav-load").empty();
            this.$(".left-nav-Alllist").empty();
            this.$(".main-show-layout").empty();
            //改变导航条的显示
            this.loadnav.farm=farmname;
            this.loadnav.coop="所有控制器";
            this.loadnav.appendTo(this.$(".left-nav-load"));
            //设置要渲染的控制器所属的id，让其重新渲染
            this.leftnavBw800List.dbIdFarm=dbid;
            this.leftnavBw800List.appendTo(this.$(".left-nav-Alllist"));
            this.mybw800tabs.appendTo(this.$(".main-show-layout"));
        }
    });
    //==========================================================================
    //组件：bw800实例显示tab们
    //===============================================================
    local.Bw800Tabs=instance.Widget.extend({
        template:"nmbw800_bw800tabs",
        start:function(){
            this.$el.tabs();//主要显示区域用用了jquery的tabs
            //日记录显示
            this.dayrecord=new local.DayRecord(self,'day');
            //详细记录显示
            this.detailrecord=new local.DayRecord(self,'detail');      
            //图表显示控件
            this.graphshow=new local.GraphShow(self);
            //视频显示控件
            this.videoshow=new local.VideoShow(self);
            //初始化渲染
            this.initRender();
        },
        initRender:function(){
            this.dayrecord.appendTo(self.$("#nmbw800-tabs-1"));
            this.detailrecord.appendTo(self.$("#nmbw800-tabs-2"));
            this.graphshow.appendTo(self.$("#nmbw800-tabs-3"));
            this.videoshow.appendTo(self.$("#nmbw800-tabs-4"));
        },
        //响应左侧list单击改变的动作
        RenderMain:function(addr){
            //重新渲染日下料
            this.dayrecord.set('currentAddr',addr);
            //重新渲染详细下料记录
            this.detailrecord.set('currentAddr',addr);
            //重新渲染图表
            this.graphshow.set('currentAddr',addr);
        }
    });
    //===========================================================================
    //组件：一个路径导航
    //=======================================================================
    local.LoadNav=instance.Widget.extend({
        init:function(parent,farm,coop){
            this._super(parent);
            this.farm=farm;//高村猪场，xx猪场，或者全国
            this.coop=coop;//一些分娩舍，或者空
        },
        start:function(){
            this.$el.append(QWeb.render('nmbw800_loadnav',{farm:this.farm,coop:this.coop}))
        },
        events:{
            //单击第一个li元素时，就是全国
            'click li:first-child':'clickTheAllFarm'
        },
        //单击第一个li元素时，就是全国显示全国的猪场
        clickTheAllFarm:function(){
            // alert(3333333);
            // this.$el.empty();
            // this.$el.append(QWeb.render('nmbw800_loadnav',{farm:'全国',coop:''}));
            this.trigger('showAllTheFarm');//显示所有栏舍
        }
    });
    //========================================================================
    //组件2 list 显示BW800的示例
    //事件：this.trigger('chose_list',choseAddr);//以当前list对应的设备地址作为参数触发一个事件。
    //
    //=====================================================================
    local.ListBW800=instance.Widget.extend({
        template:"nmbw800_listContant",
        init:function(parent){
            this._super(parent);
            this.choseListItem=0;//初始化一个值用来代表当前选择的item，其实是用数据库的id表示的
            this.dbidFarm=1;//渲染时以bw800所属的猪场为id=-1的渲染
        },
        start:function(){
            this.render();
        },
        //dbIdFarm属性值改变时会重新渲染
        render:function(){
            var self=this;
            this.$el.empty();
            var model = new instance.web.Model('nmbw800.mymodel');
                //id,设备地址，母猪状态，第几日，已吃多少
            model.query(['id','Addr','Stage','Day','HasEat'])
                .filter([['farm', '=', this.dbIdFarm]])
                .all()
                .then(function(results){
                    if(results.length==0){//查询没有任何一个控制器属于这个猪场，就是空数组
                        self.$el.append("<h3>很遗憾没有满足要求的控制器。</h3>")
                        return;
                    };
                    _(results).each(function(item,index){
                        //如果是第一个就进行高亮处理             
                        self.$el.append(QWeb.render('nmbw800_leftnav_l',{item:item}));
                    });
                });
        },
        events:{
            'click .fa-cog':'showForm',//单击图标时显示form
            'click .leftnav-bw800-list':'choseList'//单击一个list的时候
        },
        //单击bw800的list时显示form
        showForm:function(event){
            this.do_action({
                type: 'ir.actions.act_window',
                res_model: 'nmbw800.mymodel',
                res_id: $(event.currentTarget).data('id'),
                views: [[false, 'form']]
            });
        },
        choseList:function(event){
            var self=this;
            var choseAddr; //选择的的list对应的控制器地址
            self.choseListItem = $(event.currentTarget).data('id');
            //遍历所有list，添加高亮css
            $(event.currentTarget).parent().children('.leftnav-bw800-list').each(function(){
                if($(this).data('id')==self.choseListItem){//如果遍历到我单击的那个list,添加一个css上去
                    $(this).addClass('leftnav-bw800-list-chose');
                    choseAddr=$(this).data('addr');
                }else{
                    $(this).removeClass('leftnav-bw800-list-chose');
                }
            });
            //alert(choseAddr);
            this.trigger('chose_list',choseAddr);//以当前list对应的设备地址作为参数触发一个事件。
        }
    });

    //=======================
    //组件3 日记录显示组件
    //currentAddr 属性一改变就重新渲染。
    //实例化时有一个参数用来，代表这个控件是渲染日下料记录还是详细下料记录
    //=====================
    local.DayRecord=instance.Widget.extend({
        template:"nmbw800_dayrecord",
        init:function(parent,flag){//flag 可以输入day或者detail，代表渲染哪种记录
            this._super(parent);
            this.flag=flag;
            this.set("currentAddr",-1);//属性该属性变化时会导致事件
        },
        start:function(){
            this.render();
            this.on("change:currentAddr", this, this.render);//监听属性变化如果变化就调用函数
        },
        render:function(){//根据flag的值渲染
            //alert(this.get("currentAddr"));
            //根据currentAddr渲染
            var self=this;
            var RecordModel;
            if (this.flag=="day") {
                RecordModel=new instance.web.Model('nmbw800.dayrecord');
            };
            if (this.flag=="detail") {
                RecordModel=new instance.web.Model('nmbw800.detailrecord');
            };
            //先清空表格再渲染
            this.$("tbody").empty();
            //id,设备地址，母猪状态，第几日，已吃多少，根据currentAddr地址渲染
            RecordModel.query(['addr','pignum','date','amount','actual'])
                .filter([['addr', '=', this.get("currentAddr")]])
                .all()
                .then(function(results){
                    _(results).each(function(item,index){//下划线库的each
                        item.index=index+1;
                        self.$("tbody").append(QWeb.render("nmbw800_dayrecord_list",{item:item}));
                    });
                });
        }
    });
    
    //==================
    //组件4 图表显示
    //================
    local.GraphShow=instance.Widget.extend({
        template:"nmbw800_graphshow",
        init:function(parent){
            this._super(parent);
            this.set("currentAddr",-1);//属性该属性变化时会导致事件
            this.detailrecordByDay=new Object;//用来存储
            this.daylist=[];//一个数组用来存储这个控制器有的详细记录分成日的列表
        },
        start:function(){
            //上面的显示日记录的图表
            var self=this;
            this.render();
            this.on("change:currentAddr", this, this.render);//监听属性变化如果变化就调用函数
            //如果slect选择不同的日期，就以这个日期渲染24小时吃料表
            this.$('.mydaySelect').change(function(){
                //alert(self.$('.mydaySelect').val());
                self.renderDetailRecordChart(self.detailrecordByDay[self.$('.mydaySelect').val()]);
            });
            //如果单击前一日按钮
            this.$('.mybutPreDay').click(function(){
                if (self.$('.mydaySelect')[0].selectedIndex==0) {
                    self.$('.bs-example-modal-sm').modal();//弹出一个模态框，提示到顶了
                    return;
                };//如果是最前一个项目了就什么都不干
                self.$('.mydaySelect')[0].selectedIndex=self.$('.mydaySelect')[0].selectedIndex-1;
                //渲染日24小时下料
                self.renderDetailRecordChart(self.detailrecordByDay[self.$('.mydaySelect').val()]);
            });
            //如果单击后一日按钮
            this.$('.mybutNextDay').click(function(){
                if (self.$('.mydaySelect')[0].selectedIndex==self.daylist.length-1) {
                    self.$('.bs-example-modal-sm').modal();//弹出一个模态框,提示到顶了
                    return;
                };
                self.$('.mydaySelect')[0].selectedIndex=self.$('.mydaySelect')[0].selectedIndex+1;
                //渲染日24小时下料
                self.renderDetailRecordChart(self.detailrecordByDay[self.$('.mydaySelect').val()]);
            });
        },
        render:function(){
            var self=this;
            //得到日记录的数据模型
            var DayRecordModel=new instance.web.Model('nmbw800.dayrecord');
            DayRecordModel.query(['addr','date','amount','actual'])
                .filter([['addr', '=', this.get("currentAddr")]])
                .all()
                .then(function(results){
                    datelist=_.pluck(results,'date');//用key获取数组
                    amountlist=_.pluck(results,'amount');
                    actuallist=_.pluck(results,'actual');
                    //赋值完成后用这3个数组渲染
                    self.renderDayRecordChart(datelist,amountlist,actuallist);
                });


            //得到详细记录模型，并进行渲染
            var DetailRecordModel=new instance.web.Model('nmbw800.detailrecord');
            DetailRecordModel.query(['addr','date','amount','actual'])
                .filter([['addr', '=', this.get("currentAddr")]])
                .all()
                .then(function(results){
                    //先将详细下料记录按照日期分组
                    //2016-03-04:{每一条记录},
                    //2016-03-05:{每一条记录},
                    results=_.groupBy(results,function(dbitem){return dbitem.date.split(" ")[0];});//如果2016-03-04 12:23:00返回2016-03-04
                    //再按时间段分开2016-03-04:{00:{记录n条}，01:{记录n条}},
                    //再变成
                    //{2016-03-04:{00:2000，01:3000},2016-03-05:{00:2000，01:3000}}
                    _.each(results,function(dataItem,dataindex){//每一个日期集合里面又按时间段分组
                        results[dataindex]=_.groupBy(dataItem,function(dbitem){//每一个index就是一个日期集合
                            return dbitem.date.split(" ")[1].split(":")[0];//如果2016-03-04 12:23:00返回12
                        });
                        //对每一天里面的每一个小时时间段的数据进行操作
                        _.each(results[dataindex],function(hourItem,hourindex){
                            var sum=0;
                            for (var i = hourItem.length - 1; i >= 0; i--) {
                                //console.log(typeof(hourItem[i].actual));
                                sum=sum+hourItem[i].actual;
                                //console.log(sum);
                            };
                            //alert(sum);
                            results[dataindex][hourindex]=sum;
                            //此时数组变为
                            //{2016-03-04:{00:2000，01:3000},2016-03-05:{00:2000，01:3000}}
                        });
                    });
                    //变为24小时的合计下料量{2016-03-04:[0,0,2500..00,2000],2016-03-05:[0,0,2500..00,2000]}
                    _.each(results,function(dataItem,dataindex){
                        var hourlist=[];
                        for (var i = 0; i < 24; i++) {
                            var key="";
                            if(i<10){key="0"+i;};
                            if(i>=10){key=i.toString();};
                            if (dataItem[key]==undefined) {
                                hourlist.push(0);
                            }else{
                                hourlist.push(dataItem[key]);
                            };
                        };
                        results[dataindex]=hourlist;
                        //console.log(hourlist);
                    });

                    //缓存变量使可以动态改变
                    self.detailrecordByDay=results;
                    //日期list
                    dayKeylist=_.keys(results);//[2013-04-05,2013-09-21.....]
                    self.daylist=dayKeylist;
                    //渲染详细记录日期选择下拉按钮
                    self.renderSelectDay(dayKeylist);
                    //渲染图表,用最后一个日期
                    self.renderDetailRecordChart(results[dayKeylist[dayKeylist.length-1]]);
                });

        },
        //渲染日记录图表
        renderDayRecordChart:function(datelist,amountlist,actuallist){
            this.$('.nmbw800_myChart_dayrecord').highcharts({
                chart: {type: 'line'},
                title: {text: '日下料记录'},
                subtitle: {text: 'bw800内部记录'},
                credits:{//右下角不显示
                    href:"",
                    text:""
                },
                xAxis: {
                    categories: datelist
                },
                yAxis: {
                    title: {
                        text: '下料重量 (单位：克)'
                    }
                },
                tooltip: {
                    enabled: false,
                    formatter: function() {
                        return '<b>'+ this.series.name +'</b><br/>'+this.x +': '+ this.y +'°C';
                    }
                },
                plotOptions: {
                    line: {
                        dataLabels: {
                            enabled: true
                        },
                        enableMouseTracking: false
                    }
                },
                series: [{
                    name: '可吃总量',
                    data: amountlist
                }, {
                    name: '实际吃量',
                    data: actuallist
                }]
            });
        },
        //渲染详细记录日期选择下拉按钮
        renderSelectDay:function(data){//[2013-04-05,2013-09-21.....]
            //先清空下拉
            this.$('.mydaySelect').empty();
            //下拉的选框用daykeylist渲染
            _.each(data,function(item,index){
                this.$('.mydaySelect').append('<option>'+item+'</option>');
            });
            //用select的最后一个日期就是最新的日期作为默认值
            this.$('.mydaySelect').val(data[data.length-1]);
        },
        //渲染详细记录图表
        renderDetailRecordChart:function(data){
            var xAxisHour=['0时','1时','2时','3时','4时','5时','6时','7时','8时','9时','10时','11时','12时','13时','14时','15时','16时','17时','18时','19时','20时','21时','22时','23时','24时']
            var self=this;
            this.$('.nmbw800_myChart_detailrecord').empty();
            //返回一个全局变量可以动态渲染
            this.mydetailChart=this.$('.nmbw800_myChart_detailrecord').highcharts({
                chart: {type: 'column'},
                title: {text: '24小时吃料统计'},
                subtitle: {text: 'bw800内部记录'},
                credits:{//右下角不显示
                    href:"",
                    text:""
                },
                xAxis: {
                    categories: xAxisHour
                },
                yAxis: {
                    title: {
                        text: '下料重量 (单位：克)'
                    }
                },
                tooltip: {
                    enabled: false,
                    formatter: function() {
                        return '<b>'+ this.series.name +'</b><br/>'+this.x +': '+ this.y +'°C';
                    }
                },
                plotOptions: {
                    line: {
                        dataLabels: {
                            enabled: true
                        },
                        enableMouseTracking: false
                    }
                },
                series: [{
                    name: '每小时吃料量',
                    data: data
                }]
            });
        },
    });
    //===============
    //组件5 视频显示
    //================
    local.VideoShow=instance.Widget.extend({
        template:"nmbw800_videoshow",
        start:function(){
            this.nmbw800video =jwplayer ( "nmbw800_video1" ). setup ({
                      flashplayer : "/nmbw800/static/lib/jwplayer/jwplayer.flash.swf" ,//指定播放器
                      file:"rtmp://10.33.38.18:1935/live/steam1",
                      height : 480 ,
                      width : 720
            });
            this.nmbw800video.play(true);//一开始就自动播放
        }
    });
    //================
    //组件：全国地图
    //==============
    local.ChinaMap=instance.Widget.extend({
        template:"nmbw800_chinamap",
        init:function(parent,dbfarmmodel){
            this._super(parent);
            this.dbfarmmodel=dbfarmmodel;//得到的数据库中的猪场list
        },
        events:{
            //modal单击确定按钮
            'click .bs-example-modal-sm .modal-footer .my-btn-yes':'enterFarm'
        },

        start:function(){
            var self=this;//在option里面会用到
            // this.$('.bs-example-modal-sm').modal();//弹出一个模态框
            //地图数据
            var data = Highcharts.geojson(Highcharts.maps['countries/cn/custom/cn-all-china']);
            //将数据库中的{detailaddr: "广东省云浮市新兴县", latitude: 22.718668, id: 1, longitude: 112.206247, farmname: "南牧公司"}
            //转为{name: "南牧公司", lat: 22.718668, lon: 112.206247}
            var myFarmPoint=[];
            //console.log(this.dbfarmmodel);
            for(var item in this.dbfarmmodel){
                var newitem=new Object;
                //console.log(this.dbfarmmodel[item]);
                newitem["id"]=this.dbfarmmodel[item].id;//猪场主键
                newitem["name"]=this.dbfarmmodel[item].farmname;
                newitem["lat"]=this.dbfarmmodel[item].latitude;
                newitem["lon"]=this.dbfarmmodel[item].longitude;
                newitem["detailaddr"]=this.dbfarmmodel[item].detailaddr;
                //console.log(newitem);
                myFarmPoint[item]=newitem;
            };
            //console.log(myFarmPoint)
            //配置结构
            var options={
                mapNavigation: {
                    enabled: true
                },
                title:{
                    text:"<h1>使用猪场分布图</h1>"
                },
                credits:{
                    href:"http://www.nmjx.com.cn/",
                    text:"南牧公司"
                },
                //单击标记产生的事件
                plotOptions:{
                    series:{
                        point:{
                            events:{
                                click: function(){
                                    //alert(this.name);
                                    //js修改模态框的提示内容
                                    self.$('.bs-example-modal-sm .modal-body').empty();
                                    //将猪场模型的主键id放到dom中，方便后面的modal单击时可以知道是哪个猪场要进入
                                    self.$('.bs-example-modal-sm').data("dbid",this.id)//主键id
                                    self.$('.bs-example-modal-sm .modal-body').append("<h3>是否进入<span style='font-size:30px;'>"+this.name+"</span>？</h3>");
                                    self.$('.bs-example-modal-sm').modal();//弹出一个模态框
                                }
                            }
                        }
                    }
                },
                tooltip: {
                    headerFormat: '',
                    pointFormat: '<b>{point.name}</b><br>地址:{point.detailaddr}',
                    //改变tootip的样式
                    backgroundColor: {
                        linearGradient: [0, 0, 0, 60],
                        stops: [
                            [0, '#bbffee'],
                            [1, '#aaffee']
                        ]
                    },
                    borderWidth: 1,
                    borderColor: '#AAA',
                },

                series: [{
                    // Use the gb-all map with no data as a basemap
                    mapData: Highcharts.maps['countries/cn/custom/cn-all-china'],
                    name: 'Basemap',
                    borderColor: '#A0A0A0',
                    nullColor: 'rgba(200, 200, 200, 0.3)',
                    showInLegend: false
                },{
                    // Specify points using lat/lon
                    type: 'mappoint',
                    name: '猪场',
                    color: Highcharts.getOptions().colors[1],
                    data:myFarmPoint//用数据库的数据标记点
                    // data: [
                    //     {
                    //         name: '南牧公司',
                    //         lat: 22.7186680000,
                    //         lon: 112.2062470000
                    //     },{
                    //         name:'高村猪场',
                    //         lat:22.6136170000,
                    //         lon:112.4843890000
                    //     },{
                    //         name:'羊头猪场',
                    //         lat:22.8108950000,
                    //         lon:108.3465340000
                    //     },
                    // ]
                }]
            };
            this.mychart=this.$('.nmbw800_chinamap').highcharts('Map',options).highcharts();
            console.log(this.mychart)
        },
        //响应地图list选择的改变
        handleChoseList:function(index){
            var self=this;
            var x=this.mychart.series[1].points[index].x;
            var y=this.mychart.series[1].points[index].y;
            //如果这次的单击不是上一个猪场，那么地图先退回全国的视图再放大到指定的猪场
            if(self.lastindex!=index){
                //console.log(index);
                //console.log(self.lastindex);
                //视图跳回到全国
                self.mychart.mapZoom();
                //放大到指定的区域
                //self.mychart.mapZoom(0.5,x,y);
                //将猪场的tooltip显示出来，seriers[1]代表猪场的标记
                self.mychart.tooltip.refresh(self.mychart.series[1].points[index]);
                //缓存这次单击的index
                self.lastindex=index;
            };
            if(self.lastindex==index){//如果这次单击和上次一样的，那么就不退回全国，直接再次放大
                //console.log(index);
                self.mychart.mapZoom(0.5,x,y);
                //将猪场的tooltip显示出来，seriers[1]代表猪场的标记
                self.mychart.tooltip.refresh(self.mychart.series[1].points[index]);
                //缓存这次单击的index
                self.lastindex=index;
            };
        },
        //单击模态框的确定按钮
        enterFarm:function(){
            var self=this;
            var dbid=this.$('.bs-example-modal-sm').data("dbid");
            //在hide事件后再发射信号到上级控件，可以避免没有hide完，有屏蔽层存在
            $('.bs-example-modal-sm').on('hidden.bs.modal', function (e) {
              self.trigger('enter_farm',dbid);
            });
            this.$('.bs-example-modal-sm').modal('hide');
            //this.trigger('enter_farm',dbid);

        }
    });
    //===================
    //组件：全国猪场的list
    //this.trigger('chose_list',choseFarmName);//以当前list对应的设备地址作为参数触发一个事件。
    //===================
    local.FarmList=instance.Widget.extend({
        template:"nmbw800_listContant",
        init:function(parent,dbfarmmodel){
            this._super(parent);
            this.dbfarmmodel=dbfarmmodel;
            this.choseListItem=0;//初始化一个值用来代表当前选择的item，其实是用数据库的id表示的
        },
        start:function(){
            var self=this;
            //'farmname','detailaddr','latitude','longitude'
            _(this.dbfarmmodel).each(function(item,index){
                var firstChar=item.farmname.substr(0, 1);//取猪场名称的第一个字，如羊头猪场，取羊字
                self.$el.append(QWeb.render('nmbw800_farmlist',{index,firstChar,item:item}));
            });
        },
        events:{
            'click .leftnav-bw800-list':'choseList',//单击一个list的时候,可以看到在地图上显示tooltip
            'click .right':'enterFarm'//进入养殖场
        },
        choseList:function(event){
            var self=this;
            var choseIndex; //选择的的list对应的控制器地址
            self.choseListItem = $(event.currentTarget).data('index');
            //遍历所有list，添加高亮css
            $(event.currentTarget).parent().children('.leftnav-bw800-list').each(function(){
                if($(this).data('index')==self.choseListItem){//如果遍历到我单击的那个list,添加一个css上去
                    $(this).addClass('leftnav-bw800-list-chose');
                    choseIndex=$(this).data('index');
                }else{
                    $(this).removeClass('leftnav-bw800-list-chose');
                }
            });
            //alert(choseAddr);
            //alert(choseIndex);
            this.trigger('chose_list',choseIndex);//以当前list对应的设备地址作为参数触发一个事件。
        },
        enterFarm:function(event){
            dbid=$(event.currentTarget).data('id');
            farmname=$(event.currentTarget).data('farmname');
            //alert(dbid);
            this.trigger('enter_farm',dbid,farmname);
        }
    });
    
    instance.web.client_actions.add('nmbw800_appview','instance.nmbw800.AppView');//注册，可以在menu中用
};
})();